package service;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;

import model.Endereco;
import enumerations.Estado;

public class EnderecoDAO extends GenericDAOImpl<Endereco> {
	
	public EnderecoDAO(EntityManager em) {
		super.entityManager = em;
	}
	
	public Endereco criaEndereco(Estado estado, String cep, String cidade,
			String bairro, String rua, String complemento, int numero) {
		Endereco end = new Endereco();
		end.setBairro(bairro);
		end.setCep(cep);
		end.setCidade(cidade);
		end.setComplemento(complemento);
		end.setEstado(estado);
		end.setNumero(numero);
		end.setRua(rua);
		
		insereObjeto(end);
		
		return end;
	}

	@Override
	public List<Endereco> listaObjetos() {
		TypedQuery<Endereco> query = entityManager.createQuery(
				"SELECT e FROM Endereco e", Endereco.class);
		return query.getResultList();
	}

	@Override
	public void deletaObjetos() {
		TypedQuery<Endereco> query = entityManager.createQuery(
				"DELETE FROM Endereco", Endereco.class);
		query.executeUpdate();
	}

	@Override
	public Endereco localizaObjeto(Long objId) {
		Endereco obj = entityManager.getReference(Endereco.class, objId);
		return obj;
	}

}
